package com.pe.pgn.clubpgn.service;

import java.util.List;

import com.pe.pgn.clubpgn.domain.ClpbEstacion;
import com.pe.pgn.clubpgn.domain.ClpbTarjetaPersona;
import com.pe.pgn.clubpgn.domain.ClpdTipoTarjetaPersona;
import com.pe.pgn.clubpgn.domain.beans.BNRango;
import com.pe.pgn.clubpgn.domain.beans.BNTarjetaPersona;

public interface TarjetaPersonaService extends GenericManager<ClpbTarjetaPersona, Long> {

	public List<ClpbTarjetaPersona> obtenerTarjetasPersonas();
	public ClpbTarjetaPersona obtenerTarjetaPersona(Long id);
	public void guardarTarjetaPersona(ClpbTarjetaPersona tarjetaPersona);
	public void eliminarTarjetaPersona(Long id);
	public void guardarGrupoTarjetasPersonas(BNTarjetaPersona tarjetaPersona);
	public boolean existeRango(BNTarjetaPersona tarjetaPersona);
	public List<ClpdTipoTarjetaPersona> obtenerTiposTarjetasPersonas();
	public BNTarjetaPersona obtenerMaximoCodigoTarjetaPersona();
	public List<ClpbEstacion> obtenerEstaciones();
	public List<BNRango> obtenerRangosTarjetaDisponibles();
	public boolean existenCodigosAsignadosEnRango(BNTarjetaPersona tarjetaPersona);
	public void asignarTarjetasPersonas(BNTarjetaPersona tarjetaPersona);
	public List<ClpbTarjetaPersona> buscarTarjetas(String coCodigoTarjetaPersona, 
		Long coEstacion, String deNombre, String fechaVigencia, 
		String estadoTarjeta, String stStrAnulada);
	public List<BNRango> obtenerRangosTarjetaDisponiblesPorEstacion(
			Long coEstacion);
	public void reasignarTarjetasPersonas(BNTarjetaPersona tarjetaPersona);
	public boolean existenCodigosAsignadosEnRangoPorEstacion(
			BNTarjetaPersona tarjetaPersona);
}
